﻿using LX.NHibernate.Data.Domain;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;

namespace LX.NHibernate.Service
{
    public interface IUser_InfoManage
    {
        /// <summary>
        /// User_Info 添加信息
        /// </summary>
        /// <param name="modelUser_Info"></param>
        /// <returns></returns>
        object User_InfoAdd(User_Info modelUser_Info);

        /// <summary>
        /// User_Info 删除实体
        /// </summary>
        /// <param name="modelUser_Info"></param>
        /// <returns></returns>
        void User_InfoDelete(User_Info modelUser_Info);

        /// <summary>
        /// User_Info 修改信息
        /// </summary>
        /// <param name="modelUser_Info"></param>
        /// <returns></returns>
        void User_InfoEdit(User_Info modelUser_Info);

        /// <summary>
        /// 获得User_Info 实体
        /// </summary>
        /// <param name="UserId"></param>
        /// <returns></returns>
        User_Info GetUser_Info(object UserId);

        /// <summary>
        /// 获取User_Info列表
        /// </summary>
        /// <returns></returns>
        List<User_Info> GetUser_InfoList();

        /// <summary>
        /// 分页条件查询和排序
        /// </summary>
        /// <param name="where"></param>
        /// <param name="order"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="Total"></param>
        /// <returns></returns>
        IList<Data.Domain.User_Info> GetUser_InfoListForPage(Expression<Func<Data.Domain.User_Info, bool>> where, Expression<Func<Data.Domain.User_Info, object>> order, int pageIndex, int pageSize, out int Total);
    }
}
